package com.bbva.general.dao.impl;

import java.util.ArrayList;
import java.util.List;

import javax.sql.DataSource;

import org.apache.log4j.Logger;

import com.bbva.general.dao.CargaDAO;
import com.bbva.general.dao.jdbc.CargaDAOActualizar;
import com.bbva.general.dao.jdbc.CargaDAOConfirmar;
import com.bbva.general.dao.jdbc.CargaDAOConfirmarFeriado;
import com.bbva.general.dao.jdbc.CargaDAOConfirmarFormato51;
import com.bbva.general.dao.jdbc.CargaDAOConfirmarFormato80;
import com.bbva.general.dao.jdbc.CargaDAOConfirmarFormato81;
import com.bbva.general.dao.jdbc.CargaDAOConfirmarTerritorios;
import com.bbva.general.dao.jdbc.CargaDAOConfirmarUbigeo;
import com.bbva.general.dao.jdbc.CargaDAOConfirmarProducto;
import com.bbva.general.dao.jdbc.CargaDAOConfirmarOfigru;
import com.bbva.general.dao.jdbc.CargaDAOInsertar;
import com.bbva.general.entities.Carga;
import com.bbva.general.entities.TipoCarga;
import com.bbva.general.util.NegocioException;

public class CargaDAOImpl implements CargaDAO
{
	Logger log = Logger.getLogger(this.getClass());
	DataSource dataSource;

	public DataSource getDataSource()
	{
		return dataSource;
	}

	public void setDataSource(DataSource dataSource)
	{
		this.dataSource = dataSource;
	}

	public void Actualiza(Carga objCarga)
	{
		try
		{
			CargaDAOActualizar sp = new CargaDAOActualizar(dataSource);
			sp.Actualizar(objCarga);
		}
		catch (Exception e)
		{
			
			e.printStackTrace();
			log.info("Actualiza => ERROR:  " +  e);
		}
	}

	public void Eliminar(String intIdCarga)
	{

	}

	public String Insertar(Carga objCarga) throws Exception
	{
		String idcarga;
		try
		{
			log.info("====== Inicia la carga - insertar() ====");
			CargaDAOInsertar sp = new CargaDAOInsertar(dataSource);
			idcarga = sp.Insertar(objCarga);
			log.info("idcarga " + idcarga + ".");
		}
		catch (Exception e)
		{
			idcarga = "";
			e.printStackTrace();
			log.info("Insertar(Carga objCarga)" + e);
		}
		if(idcarga.equals("-1")){
			throw new NegocioException("ERROR: La carga se esta ejecutando..");
			
		} 
		return idcarga;
	}

	public List<TipoCarga> ListarTipoCarga()
	{
		TipoCarga automatica = new TipoCarga();
		TipoCarga manual = new TipoCarga();
		automatica.setIdTipoCarga(1);
		automatica.setDescripcionTipoCarga("Automatica");
		manual.setIdTipoCarga(2);
		manual.setDescripcionTipoCarga("Manual");
		List<TipoCarga> listado = new ArrayList<TipoCarga>();
		listado.add(automatica);
		listado.add(manual);
		return listado;
	}

	public void ConfirmarCarga()
	{
		CargaDAOConfirmar sp = new CargaDAOConfirmar(dataSource);
		sp.Confirmar();
	}

	public void ConfirmarCargaFormato51()
	{
		CargaDAOConfirmarFormato51 sp = new CargaDAOConfirmarFormato51(dataSource);
		sp.Confirmar();

	}

	public void ConfirmarCargaFeriado()
	{
		CargaDAOConfirmarFeriado sp = new CargaDAOConfirmarFeriado(dataSource);
		sp.Confirmar();

	}

	public void ConfirmarCargaUbigeo()
	{
		CargaDAOConfirmarUbigeo sp = new CargaDAOConfirmarUbigeo(dataSource);
		sp.Confirmar();
	}
	public void ConfirmarCargaTerritorios()
	{
		CargaDAOConfirmarTerritorios sp = new CargaDAOConfirmarTerritorios(dataSource);
		sp.Confirmar();
	}	
	public void ConfirmarCargaFormato80()
	{
		CargaDAOConfirmarFormato80 sp = new CargaDAOConfirmarFormato80(dataSource);
		sp.Confirmar();

	}
	public void ConfirmarCargaFormato81()
	{
		CargaDAOConfirmarFormato81 sp = new CargaDAOConfirmarFormato81(dataSource);
		sp.Confirmar();

	}
	public void ConfirmarCargaProducto()
	{
		CargaDAOConfirmarProducto sp = new CargaDAOConfirmarProducto(dataSource);
		sp.Confirmar();
	}

	public void ConfirmarCargaOfigru()
	{
		CargaDAOConfirmarOfigru sp = new CargaDAOConfirmarOfigru(dataSource);
		sp.Confirmar();
	}

}
